A General Compiler Framework for Data Speculation Using DSCM

نویسندگان

  • Xiaoru Dai
  • Wei-chung Hsu
  • Wei-Chung Hsu
  • Pen-Chung Yew
چکیده

Getting precise alias information in a language that allows pointers, such as C, is expensive. One reason is that alias analysis should generate conservative (safe) alias information. Alias analysis assumes possible aliases when it can’t prove there are no aliases. The conservative alias information may greatly affect compiler optimizations. In this paper, we present a general framework to allow speculative (unsafe) alias information to be used in several compiler optimizations such as redundancy elimination, copy propagation, dead store elimination and code scheduler. Speculative alias information is not guaranteed to be correct. Run-time verification and recovery code are generated to guarantee the correctness of the optimizations that use speculative alias information. In the framework, the key idea is to use data speculative code motion (DSCM) to move the instruction that will be optimized away to the instruction that causes the optimization. During DSCM, verification and recovery code are generated. After the DSCM, the optimization becomes non-speculative and the moved instruction can be optimized away.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Software Framework for Supporting General Purpose Applications on Raw Computation Fabrics

This paper presents SUDS (Software Un-Do System), a data speculation system for Raw processors. SUDS manages speculation in software. The key to managing speculation in software is to use the compiler to minimize the number of data items that need to be managed at runtime. Managing speculation in software enables Raw processors to achieve good performance on integer applications without sacrifi...

متن کامل

Performance potentials of compiler-directed data speculation

Compiler-directed data speculation has been implemented on Itanium systems to allow for a compiler 10 move a load across a store even when the two operations are potentially aliased This not only breaks data dependency to reduce critical path length, but also allows a load to be scheduled far apart from its uses to hide cache miss latencies. However, the effectiveness of data speculation is aff...

متن کامل

A Study of the E ects of Compiler-Controlled Speculation on Instruction and Data Caches

Compiler-controlled speculation has been shown to be e ective in increasing instruction level parallelism (ILP) found in non-numeric programs. However, it is not clear the extent to which speculatively scheduled code may a ect the instruction and data caches. In particular, the amount of time spent resolving cache misses may be signi cant enough to prevent the more aggressive speculation models...

متن کامل

7 Conclusion 6 Experimental Results 5.2 Moving a Load across Multiple Stores

In many code streams, a load instruction is on a critical path and is followed by a chain of operations depending on the load. The execution of a load from memory often yields a long latency on a modern microprocessor. To compensate for this latency and reduce the length of the critical path, one way is to trigger the load as early as possible in a non-blocking way. However, to preserve the sem...

متن کامل

A data dependency recovery system for a heterogeneous multicore processor

Multicore processors often increase the performance of applications. However, with their deeper pipelining, they have proven increasingly di cult to improve. In an attempt to deliver enhanced performance at lower power requirements, semiconductor microprocessor manufacturers have progressively utilised chip-multicore processors. Existing research has utilised a very common technique known as th...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2004